# 977. 有序数组的平方
# 给你一个按 非递减顺序 排序的整数数组 nums，返回 每个数字的平方 组成的新数组，要求也按 非递减顺序 排序。
#
# 示例 1： 输入：nums = [-4,-1,0,3,10] 输出：[0,1,9,16,100] 解释：平方后，数组变为 [16,1,0,9,100]，排序后，数组变为 [0,1,9,16,100]
#
# 示例 2： 输入：nums = [-7,-3,2,3,11] 输出：[4,9,9,49,121]

class Solution:
    def sortedSquares(self, nums: List[int]) -> List[int]:
        slow, fast = 0, len(nums) - 1
        res = []
        while slow <= fast:
            ss = nums[slow]*nums[slow]
            ff = nums[fast]*nums[fast]
            if ss > ff:
                res.append(ss)
                slow += 1
            else:
                res.append(ff)
                fast -= 1
        return res[::-1]
#这里我看了一下卡哥的视频，从后面开始赋值，确实比我最后还反转一次要优秀
